107 research outputs found

    FCPP: An efficient and extensible Field Calculus framework

    Get PDF

    Tuple-Based Coordination in Large-Scale Situated Systems

    Get PDF

    Fostering resilient execution of multi-agent plans through self-organisation

    Get PDF
    Traditional multi-agent planning addresses the coordination of multiple agents towards common goals, by producing an integrated plan of actions for each of those agents. For systems made of large numbers of cooperating agents, however, the execution and monitoring of a plan should enhance its high-level steps, possibly involving entire sub-teams, with a flexible and adaptable lower-level behaviour of the individual agents. In order to achieve such a goal, we need to integrate the behaviour dictated by a multi-agent plan with self-organizing, swarm-based approaches, capable of automatically adapting their behaviour based on the contingent situation, departing from the predetermined plan whenever needed. Moreover, in order to deal with multiple domains and unpredictable situations, the system should, as far as possible, exhibit such capabilities without hard-coding the agents behaviour and interactions. In this paper, we investigate the relationship between multi-agent planning and self-organisation through the combination of two representative approaches both enjoying declarativity. We consider a functional approach to self-organising systems development, called Aggregate Programming (AP), and propose to exploit collective adaptive behaviour to carry out plan revisions. We describe preliminary results in this direction on a case study of execution monitoring and repair of a Multi-Agent PDDL plan

    Improving Collection Dynamics by Monotonic Filtering

    Get PDF

    Computation Against a Neighbour: Addressing Large-Scale Distribution and Adaptivity with Functional Programming and Scala

    Get PDF
    Recent works in contexts like the Internet of Things (IoT) and large-scale Cyber-Physical Systems (CPS) propose the idea of programming distributed systems by focussing on their global behaviour across space and time. In this view, a potentially vast and heterogeneous set of devices is considered as an “aggregate” to be programmed as a whole, while abstracting away the details of individual behaviour and exchange of messages, which are expressed declaratively. One such a paradigm, known as aggregate programming, builds on computational models inspired by field-based coordination. Existing models such as the field calculus capture interaction with neighbours by a so-called “neighbouring field” (a map from neighbours to values). This requires ad-hoc mechanisms to smoothly compose with standard values, thus complicating programming and introducing clutter in aggregate programs, libraries and domain-specific languages (DSLs). To address this key issue we introduce the novel notion of “computation against a neighbour”, whereby the evaluation of certain subexpressions of the aggregate program are affected by recent corresponding evaluations in neighbours. We capture this notion in the neighbours calculus (NC), a new field calculus variant which is shown to smoothly support declarative specification of interaction with neighbours, and correspondingly facilitate the embedding of field computations as internal DSLs in common general-purpose programming languages—as exemplified by a Scala implementation, called ScaFi. This paper formalises NC, thoroughly compares it with respect to the classic field calculus, and shows its expressiveness by means of a case study in edge computing, developed in ScaFi
    • …
    corecore